﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using Entidades;
using CapaNegocio;

namespace CapaPresentacion
{
    public partial class MantenimientoProductos : System.Web.UI.Page
    {  //Productos
        List<Producto> lista = new List<Producto>();
        ProductoNE prodNE = new ProductoNE();

        //Categorias 
        List<Categoria> listaCategorias = new List<Categoria>();
        CategoriaNE catNE = new CategoriaNE();

        //Producto
        Producto p = new Producto();


        //Codigo de la categoria
        int idcategoria;
        static bool operacion;

        public void cargarProducto()
        {
            lista = prodNE.listarProductos();
            gvProductos.DataSource = lista;
            gvProductos.DataBind();
            txtFoto.Text = FileUpload1.FileName;

        }

        public void CargarCategorias()
        {
            listaCategorias = catNE.listarCategorias();

            cboCategoria.DataSource = listaCategorias;
            cboCategoria.DataTextField = "Nombre";
            cboCategoria.DataValueField = "IdCategoria";
            cboCategoria.DataBind();
        }


        protected void Page_Load(object sender, EventArgs e)
        {
            if (Page.IsPostBack == false)
            {
                cargarProducto();
                CargarCategorias();
            }
        }

        public void asignarEntradas()
        {
            p.IdProducto = Convert.ToInt32(txtIdProducto.Text);
            p.Nombre = txtNombre.Text;
            p.Descripcion = txtDescripcion.Text;
            p.Precio = Convert.ToDouble(txtPrecio.Text);
            p.Stock = Convert.ToInt32(txtStock.Text);
            p.Foto = txtFoto.Text;
            p.IdCategoria = cboCategoria.SelectedValue.ToString();
            
        
        }

        public string nuevoProducto()
        {
            string rpta = "";
            asignarEntradas();
            rpta = prodNE.insertarProducto(p);
            return rpta;
        
        }

        public string actualizarProducto()
        {
            string rpta = "";
            asignarEntradas();
            rpta = prodNE.actualizarProducto(p);
            return rpta;
        }

        protected void cboCategoria_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
               // txtIdProducto.Text = cboCategoria.SelectedValue.ToString();
                idcategoria = Convert.ToInt32(cboCategoria.SelectedValue.ToString());
            }
            catch (Exception)
            {

                throw;
            }
        }

        protected void btnGrabar_Click(object sender, EventArgs e)
        {
            ////Insertar
            if (operacion == true)
            {
                lblOperacion.Text = nuevoProducto();
            }
            //Actualizar
            else
            {
                lblOperacion.Text = actualizarProducto();
            }
            Response.Redirect("/MantenimientoProductos.aspx");
            cargarProducto();
        }

        public void buscarProductoById()
        {
            Producto pro = new Producto();
            pro = prodNE.buscarProductoById(Convert.ToInt32(txtIdProducto.Text));
            txtIdProducto.Text= pro.IdProducto.ToString();
            txtNombre.Text = pro.Nombre;
            txtDescripcion.Text = pro.Descripcion;
            txtPrecio.Text = pro.Precio.ToString();
            txtStock.Text = pro.Stock.ToString();
            txtFoto.Text = pro.Foto;
            imgProducto.ImageUrl = "/imagenes/"+txtFoto.Text;
           // cboCategoria.Text = pro.IdCategoria;        
        }

        protected void btnBuscar_Click(object sender, EventArgs e)
        {
            buscarProductoById();
            operacion = false;
            btnGrabar.Text = "Actualizar";
        }

        protected void btnNuevo_Click(object sender, EventArgs e)
        {
            operacion = true;
            this.txtIdProducto.Text = prodNE.codProducto().ToString();
           
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            imgProducto.ImageUrl = "/imagenes/" + FileUpload1.FileName;
            txtFoto.Text = FileUpload1.FileName;
        }
    }
}